/*
    所谓的水仙花数是指一个n位的正整数其各位数字的n次方的和等于该数本身，
    例如153=1^3+5^3+3^3,153是一个三位数
    输入描述
        第一行输入一个整数N，
        表示N位的正整数N在3-7之间包含3,7
        第二行输入一个正整数M，
        表示需要返回第M个水仙花数
    输出描述
        返回长度是N的第M个水仙花数，
        个数从0开始编号，
        若M大于水仙花数的个数返回最后一个水仙花数和M的乘积，
        若输入不合法返回-1

    示例一：

        输入
         3
         0
        输出
         153
        说明：153是第一个水仙花数
     示例二：
        输入
        9
        1
        输出
        -1
     */
const test = (input) => {
    let inputArr = input.split('\n').map(t => parseInt(t))
    console.log(inputArr)
    let [n, m] = inputArr

    if (n > 7 || n < 3) {
        console.log(-1)
        return
    }
    let min = Math.pow(10, n - 1)
    let max = Math.pow(10, n)
    // console.log(min, max)

    let _check = (num) => {
        let numArr = ('' + num).split('').map(t => parseInt(t))
        return num === numArr.reduce((a, b) => {
            return a + Math.pow(b, n)
        }, 0)
    }

    let ms = []
    for (let i = min; i < max; i++) {
        if (_check(i)) {
            ms.push(i)
        }
    }
    console.log(ms)
    let result = ms[m] || -1
    console.log(result)
}
test(`3
0`)
test(`9
1`)

test(`4
1`)
test(`5
1`)
test(`6
1`)
test(`7
1`)